package com.itheima.chapter06.lambda.test4;

import java.util.Random;

public class Test {
    /*
    练习3

        1.首先存在一个接口(RandomNumHandler )
        2.在该接口中存在一个抽象方法(getNumber)，该方法是 @@无参数但是有返回值@@
        3.在测试类(RandomNumHandlerDemo)中存在一个方法(useRandomNumHandler)
                方法的的参数是RandomNumHandler类型的
                在方法内部调用了RandomNumHandler的getNumber方法

     */

    public static void main(String[] args) {
        useRandomNumHandler(new RandomNumHandler() {
            @Override
            public int getNumber() {
                Random i = new Random();
                int num = i.nextInt(10)+1;
                return num;
            }
        });


        //如果Lambda所操作的接口中的方法，有返回值，一定要通过return语句将结果返回      否则编译错误
        useRandomNumHandler(()->{
            Random i = new Random();
            int num = i.nextInt(10)+1;
            return num;});
        //优化
        useRandomNumHandler(()->{
            Random i = new Random();
            int num = i.nextInt(10)+1;
            return num;});
    }



    public static void useRandomNumHandler(RandomNumHandler randomNumHandler){
        int result =randomNumHandler.getNumber();
        System.out.println(result);
    }

}
interface RandomNumHandler{
    int getNumber();
}